package com.hjm.project.merPaid.merPaid.domain;

import com.hjm.framework.aspectj.lang.annotation.Excel;
import com.hjm.framework.web.domain.BaseEntity;
import com.hjm.project.accounts.accounts.domain.Accounts;
import com.hjm.project.agentInfo.agentInfo.domain.AgentInfo;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.commons.lang.builder.ToStringStyle;

import java.math.BigDecimal;

/**
 * 打款数据对象 mer_paid
 *
 * @author LOVE
 * @date 2020-11-27
 */
public class MerPaid extends BaseEntity {
    private static final long serialVersionUID = 1L;


    private String[] ids;

    /**
     * 所属支行
     */
    @Excel(name = "所属支行")
    private String bankName;

    private String ldMerno;

    /**
     * 支行行号
     */
    @Excel(name = "支行行号")
    private String bankNum;

    /**
     * 结算人名
     */
    @Excel(name = "结算人名")
    private String screenName;

    /**
     * 结算卡号
     */
    @Excel(name = "结算卡号")
    private String screenNum;

    /**
     * 清算日期
     */
    @Excel(name = "清算日期")
    private String auditdate;

    /**
     * 总交易额
     */
    @Excel(name = "总交易额")
    private BigDecimal amount;

    /**
     * 总手续费
     */
    @Excel(name = "总手续费")
    private BigDecimal charge;

    /**
     * 附加费
     */
    @Excel(name = "附加费")
    private BigDecimal affixCharge;

    /**
     * 总结算金额
     */
    @Excel(name = "总结算金额")
    private BigDecimal tmoney;

    /**
     * 总交易笔数
     */
    @Excel(name = "总交易笔数")
    private Long counts;

    /**
     * 单号
     */
    @Excel(name = "单号")
    private String ordernumber;

    /**
     * 交易起始日期
     */
    @Excel(name = "交易起始日期")
    private String startdate;

    /**
     * 交易结束日期
     */
    @Excel(name = "交易结束日期")
    private String enddate;

    /**
     * 打款流水
     */
    @Excel(name = "打款流水")
    private String settleSerial;

    /**
     * 出款状态 -1：已上送 0：待处理（默认） 1：出款成功 -2：出款失败 -3：冻结
     */
    @Excel(name = "出款状态 -1：已上送 0：待处理", readConverterExp = "默=认")
    private String settleState;

    /**
     * 商户类别(0-标准类、1-优惠类、2-减免类)
     */
    @Excel(name = "商户类别(0-标准类、1-优惠类、2-减免类)")
    private Long merCategory;

    /**
     * 商户类型(0-传统商户、1-手刷商户)
     */
    @Excel(name = "商户类型(0-传统商户、1-手刷商户)")
    private Long merType;

    /**
     * 备注
     */
    @Excel(name = "备注")
    private String remarks;

    /**
     * 结算类型  00 商户结算
     */
    @Excel(name = "结算类型  00 商户结算")
    private String settleType;

    /**
     * 1 对公 2 对私
     */
    @Excel(name = "1 对公 2 对私")
    private Long nature;

    /**
     * 银联记账日期
     */
    @Excel(name = "银联记账日期")
    private String acctdate;

    /**
     * 0 线下交易 1 线上交易
     */
    @Excel(name = "0 线下交易 1 线上交易")
    private Long isonline;

    /**
     * 电签流量费
     */
    @Excel(name = "电签流量费")
    private BigDecimal simMoney;

    /**
     * 主键
     */
    private Long id;

    /**
     * 商户编号
     */
    @Excel(name = "商户编号")
    private String merno;

    /**
     * 商户名称
     */
    @Excel(name = "商户名称")
    private String merName;

    /**
     * 服务商编号
     */
    @Excel(name = "服务商编号")
    private String agentNo;

    private String agentName; //代理名称


    private AgentInfo agentInfo;
    private Accounts accounts;


    public String getAgentName() {
        return agentName;
    }

    public void setAgentName(String agentName) {
        this.agentName = agentName;
    }

    public AgentInfo getAgentInfo() {
        if (null == agentInfo) {
            agentInfo = new AgentInfo();
        }
        return agentInfo;
    }


    public String getLdMerno() {
        return ldMerno;
    }

    public void setLdMerno(String ldMerno) {
        this.ldMerno = ldMerno;
    }

    public void setAgentInfo(AgentInfo agentInfo) {
        this.agentInfo = agentInfo;
    }

    public Accounts getAccounts() {
        if (null == accounts) {
            accounts = new Accounts();
        }
        return accounts;
    }

    public String[] getIds() {
        return ids;
    }

    public void setIds(String[] ids) {
        this.ids = ids;
    }

    public void setAccounts(Accounts accounts) {
        this.accounts = accounts;
    }


    public void setBankName(String bankName) {
        this.bankName = bankName;
    }

    public String getBankName() {
        return bankName;
    }

    public void setBankNum(String bankNum) {
        this.bankNum = bankNum;
    }

    public String getBankNum() {
        return bankNum;
    }

    public void setScreenName(String screenName) {
        this.screenName = screenName;
    }

    public String getScreenName() {
        return screenName;
    }

    public void setScreenNum(String screenNum) {
        this.screenNum = screenNum;
    }

    public String getScreenNum() {
        return screenNum;
    }

    public void setAuditdate(String auditdate) {
        this.auditdate = auditdate;
    }

    public String getAuditdate() {
        return auditdate;
    }

    public void setAmount(BigDecimal amount) {
        this.amount = amount;
    }

    public BigDecimal getAmount() {
        return amount;
    }

    public void setCharge(BigDecimal charge) {
        this.charge = charge;
    }

    public BigDecimal getCharge() {
        return charge;
    }

    public void setAffixCharge(BigDecimal affixCharge) {
        this.affixCharge = affixCharge;
    }

    public BigDecimal getAffixCharge() {
        return affixCharge;
    }

    public void setTmoney(BigDecimal tmoney) {
        this.tmoney = tmoney;
    }

    public BigDecimal getTmoney() {
        return tmoney;
    }

    public void setCounts(Long counts) {
        this.counts = counts;
    }

    public Long getCounts() {
        return counts;
    }

    public void setOrdernumber(String ordernumber) {
        this.ordernumber = ordernumber;
    }

    public String getOrdernumber() {
        return ordernumber;
    }

    public void setStartdate(String startdate) {
        this.startdate = startdate;
    }

    public String getStartdate() {
        return startdate;
    }

    public void setEnddate(String enddate) {
        this.enddate = enddate;
    }

    public String getEnddate() {
        return enddate;
    }

    public void setSettleSerial(String settleSerial) {
        this.settleSerial = settleSerial;
    }

    public String getSettleSerial() {
        return settleSerial;
    }

    public void setSettleState(String settleState) {
        this.settleState = settleState;
    }

    public String getSettleState() {
        return settleState;
    }

    public void setMerCategory(Long merCategory) {
        this.merCategory = merCategory;
    }

    public Long getMerCategory() {
        return merCategory;
    }

    public void setMerType(Long merType) {
        this.merType = merType;
    }

    public Long getMerType() {
        return merType;
    }

    public void setRemarks(String remarks) {
        this.remarks = remarks;
    }

    public String getRemarks() {
        return remarks;
    }

    public void setSettleType(String settleType) {
        this.settleType = settleType;
    }

    public String getSettleType() {
        return settleType;
    }

    public void setNature(Long nature) {
        this.nature = nature;
    }

    public Long getNature() {
        return nature;
    }

    public void setAcctdate(String acctdate) {
        this.acctdate = acctdate;
    }

    public String getAcctdate() {
        return acctdate;
    }

    public void setIsonline(Long isonline) {
        this.isonline = isonline;
    }

    public Long getIsonline() {
        return isonline;
    }

    public void setSimMoney(BigDecimal simMoney) {
        this.simMoney = simMoney;
    }

    public BigDecimal getSimMoney() {
        return simMoney;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getId() {
        return id;
    }

    public void setMerno(String merno) {
        this.merno = merno;
    }

    public String getMerno() {
        return merno;
    }

    public void setMerName(String merName) {
        this.merName = merName;
    }

    public String getMerName() {
        return merName;
    }

    public void setAgentNo(String agentNo) {
        this.agentNo = agentNo;
    }

    public String getAgentNo() {
        return agentNo;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("bankName", getBankName())
                .append("bankNum", getBankNum())
                .append("screenName", getScreenName())
                .append("screenNum", getScreenNum())
                .append("auditdate", getAuditdate())
                .append("amount", getAmount())
                .append("charge", getCharge())
                .append("affixCharge", getAffixCharge())
                .append("tmoney", getTmoney())
                .append("counts", getCounts())
                .append("ordernumber", getOrdernumber())
                .append("startdate", getStartdate())
                .append("enddate", getEnddate())
                .append("settleSerial", getSettleSerial())
                .append("settleState", getSettleState())
                .append("merCategory", getMerCategory())
                .append("merType", getMerType())
                .append("remarks", getRemarks())
                .append("settleType", getSettleType())
                .append("nature", getNature())
                .append("acctdate", getAcctdate())
                .append("isonline", getIsonline())
                .append("simMoney", getSimMoney())
                .append("id", getId())
                .append("merno", getMerno())
                .append("merName", getMerName())
                .append("agentNo", getAgentNo())
                .append("agentInfo", getAgentInfo().toString())
                .append("branchPos", getAccounts().toString())
                .toString();
    }
}
